[PV-ON-HVM] Don't generate lots of spurious interrupts when using event
authorSteven Smith <ssmith@xensource.com>
Tue, 31 Oct 2006 11:38:55 +0000 (11:38 +0000)
committerSteven Smith <ssmith@xensource.com>
Tue, 31 Oct 2006 11:38:55 +0000 (11:38 +0000)
commit47132af16f616422c62befdb602903bef8f4ec5e
tree5f2f6c3703999973cf1ecfa649f4bb782777e3e8
parent937f23487a2784df020112d67eff7eb58987bcc3
[PV-ON-HVM] Don't generate lots of spurious interrupts when using event
channel upcalls.

The issue here was that the Xen platform PCI interrupt is only updated
when you return from the hypervisor into guest context, and so remained
asserted for a short interval after the interrupt handler ran.  If
it happened that the first subsequent trap to the hypervisor was
for unmasking the 8259 interrupt again, the unmasking caused the interrupt
to be reinjected.  This caused an edge on the chaining interrupt from
the slave PIC to the master.  The platform interrupt on the slave
would then be cleared as we returned to the guest, and so you
eventually end up injecting an interrupt on the master chained
interrupt with nothing pending on the slave, which shows up as
a spurious interrupt in the guest.

Signed-off-by: Steven Smith <sos22@cam.ac.uk>
unmodified_drivers/linux-2.6/platform-pci/evtchn.c